/**  
 * @Title:  IBaseService.java   
 * @Package com.vrv.common.service   
 * @author: LQ     
 * @date:   2017年2月25日 下午2:37:11   
 * @version V1.0 
 */
package com.vrv.common.service;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import com.vrv.common.model.BaseModel;

/**   
 * @ClassName: IBaseService   
 * @Description: 基础Service
 * @author: LQ
 * @date: 2017年2月25日 下午2:37:11
 */
public interface IBaseService <T extends BaseModel,PK extends Serializable>{
    
    /**
     * 新增
     * @param vo 实体
     * @return PK 实体
     */
    public PK insert(T vo);
    
    /**
     * 删除
     * @param id 主键
     */
    public void delete(PK id);
    
    /**
     * 修改
     * @param model 实体
     */
    public void update(T vo);
    
    /**
     * 根据主键查询数据
     * @param id 主键
     */
    public T selectById(PK id);

    /**
     * 条件查询集合
     * @param param 条件参数集合
     * @return List<T> 实体集合
     */
    public List<T> list(Integer page,Integer rows);
    
    /**
     * 统计个数
     * @param param 条件参数集合
     * @return int 统计数量
     */
    public int count(Map<String,Object> param);
    
}
